搜尋與排序:海量數據的基石
搜尋與排序不僅是演算法課程的開端,更是電腦科學處理數據的底層邏輯。數據的價值取決於其被檢索與組織的效率。本節透過最基礎的順序搜尋揭示演算法評估的核心——也就是在不同數據型態下,如何透過線性比對來定位目標。
1. 邏輯與代價
順序搜尋:從清單中的第一個元素開始,沿著預設的順序逐一查看,直到找到目標元素或檢查完清單為止。其時間複雜度為 $O(n)$。
2. 性能對比:無序與有序
在無序清單中(見下表),無論成功或失敗,平均比對次數通常與 $n$ 成正比。而在有序清單中,可利用數據的排列規則實現「提前終止」:當遇到比目標值更大的元素時,即可判斷目標不存在。雖然這並未改變 $O(n)$ 的本質,但優化了失敗搜尋的平均效率。
| 清單類型 | 目標存在(平均) | 目標不存在(平均) |
|---|---|---|
| 無序(表 5-1) | $n/2$ | $n$ |
| 有序(表 5-2) | $n/2$ | $n/2$(提升) |